package pe.com.bbva.efcap.servidor.dao.impl;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import pe.com.bbva.efcap.servidor.dao.DetalleParametroGeneralDAO;
import pe.com.bbva.efcap.servidor.modelo.entidad.DetalleParametroGeneral;

@Repository
public class DetalleParametroGeneralDAOImpl extends EntidadDAOImpl<DetalleParametroGeneral> 
		implements DetalleParametroGeneralDAO, Serializable {

	private static final long serialVersionUID = 1L;

	@Override
	public List<DetalleParametroGeneral> getDetalleParametroGeneral(long idEscenario,
			long idPeriodo) {
		List<DetalleParametroGeneral> lista = new ArrayList<DetalleParametroGeneral>();
		String hql = "from DetalleParametroGeneral d where d.idEscenario.idParametro = " + idEscenario + " " +
				" and d.idPeriodo.idParametro = " + idPeriodo + "" ;
		System.out.println("Mi escenario es: " + idEscenario);
		System.out.println("Mi periodo es: " + idPeriodo);
		lista =  getSession().createQuery(hql).list();
		System.out.println(hql);
		System.out.println("Mi lista tiene: " + lista.size()+ " valores");
		return lista;
	}

	@Override
	@Transactional
	public void updateDetalleParametroGeneral(DetalleParametroGeneral det) {
		this.getSession().merge(det);
		this.getSession().flush();
		this.getSession().evict(det);
	}

	@Override
	@Transactional
	public void insertDetalleParametroGeneral(DetalleParametroGeneral det) {
		this.getSession().save(det);
		this.getSession().flush();
		this.getSession().evict(det);
	}

	@Override
	public List<DetalleParametroGeneral> listarAllDetalleteParametroGeneral() {
		
		String hql = "from DetalleParametroGeneral a order by a.idPeriodo, a.idEscenario";
		List<DetalleParametroGeneral> lista = getSession().createQuery(hql).list();
		return lista;
	
	}

	

}
